package com.zmm.product.dao;

import com.zmm.product.model.Product;
import com.zmm.product.vo.ProductVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author 900045
 * @description:
 * @name ProductDao
 * @date By 2021-07-07 15:23:26
 */
public interface ProductDao {

	/**
	 * author Zebulon
	 * date 2022-01-30 10:32:54
	 * throws 
	 * @param product: 
	 * @return: java.lang.Integer
	 **/
	Integer insertProduct(Product product);
	
	/**
	 * 审核商品 -- jdbc
	 * @author: 900045
	 * @date: 2021-07-07 15:50:35
	 * @throws 
	 * @param currentTime: 
	 * @param auditState: 
	 * @param productId: 
	 * @return: java.lang.Integer
	 **/
	Integer updateProductAuditStatus(@Param("auditState") Integer auditState,@Param("currentTime") Long currentTime,
									 @Param("productId") Integer productId);
	
	/**
	 * 根据商品ID 查询实体对象 -- jdbc
	 * @author: 900045
	 * @date: 2021-07-07 15:48:43
	 * @throws 
	 * @param productId: 
	 * @return: com.zmm.product.model.Product
	 **/
	Product selectOneProductByProductId(@Param("productId") Integer productId);

	/**
	 * 更新商品信息 -- jdbc
	 * @author: 900045
	 * @date: 2021-07-07 16:37:10
	 * @throws 
	 * @param product: 
	 * @return: java.lang.Integer
	 **/
	Integer updateProduct(Product product);

	/**
	 * 根据商品ID  删除伪删除 -- jdbc
	 * @author: 900045
	 * @date: 2021-07-07 16:45:43
	 * @throws 
	 * @param productId: 
	 * @return: java.lang.Integer
	 **/
	Integer deleteProduct(@Param("productId") Integer productId);

	/**
	 * 根据条件查询 商品列表 -- jdbc
	 * @author: 900045
	 * @date: 2021-07-07 16:52:28
	 * @throws 
	 * @param productVo: 
	 * @return: java.util.List<com.zmm.product.model.Product>
	 **/
	List<Product> searchProductListByProductVo(ProductVo productVo);
}
